1. 基础核心概念 (Fundamental Core Concepts)
英文术语 (English Term) | 中文翻译 (Chinese Translation) | 解释 (Explanation) |
---|---|---|
Declaration | 声明 | 告诉编译器一个变量、函数或类型的存在,但没有分配内存或提供实现。例如 extern int a; 或 void func(); 。 |
Definition | 定义 | 为一个变量分配内存或为一个函数提供具体实现。一个实体只能被定义一次(ODR原则)。例如 int a = 10; 或 void func() { ... } 。 |
Initialization | 初始化 | 在定义变量时为其赋予一个初始值。 |
Assignment | 赋值 | 在变量已经存在后,改变它的值。 |
Scope | 作用域 | 一个标识符(变量名、函数名等)在代码中有效的区域。例如,局部作用域、全局作用域、类作用域。 |
Lifetime | 生命周期 | 一个对象从被创建(分配内存)到被销毁(释放内存)的整个时间段。 |
Lvalue / Rvalue | 左值 / 右值 | 左值 (Lvalue) 是指一个可以被取地址并可以被赋值的表达式,通常是具名对象。右值 (Rvalue) 是指一个不能被取地址的临时值或字面量。这个概念在移动语义中至关重要。 |
Undefined Behavior (UB) | 未定义行为 | 指C++标准没有规定其行为的代码。例如,访问数组越界、解引用空指针。一旦发生UB,程序可能崩溃,也可能看似正常运行,结果完全不可预测。 |
Const Correctness | 常量正确性 | 一种编程实践,指恰当并一致地使用 const 关键字来保护数据不被意外修改,提高代码的健壮性和可读性。 |
2. 面向对象编程 (Object-Oriented Programming - OOP)
英文术语 (English Term) | 中文翻译 (Chinese Translation) | 解释 (Explanation) |
---|---|---|
Class | 类 | 定义一种新类型的蓝图,描述了该类型的数据(成员变量)和可以对这些数据进行的操作(成员函数)。 |
Object / Instance | 对象 / 实例 | 类的一个具体实体。通过类创建出来的变量。 |
Member Variable / Data Member | 成员变量 / 数据成员 | 在类定义中声明的变量,属于类的每个对象。 |
Member Function / Method | 成员函数 / 方法 | 在类定义中声明的函数,用于操作类的成员变量。 |
Constructor | 构造函数 | 一种特殊的成员函数,在创建类的对象时自动调用,用于初始化对象。 |
Destructor | 析构函数 | 一种特殊的成员函数,在对象生命周期结束时自动调用,用于释放资源。 |
Encapsulation | 封装 | 将数据(成员变量)和操作数据的代码(成员函数)捆绑在一起,并对外部隐藏对象的内部实现细节。通过 public , private , protected 访问修饰符实现。 |
Inheritance | 继承 | 一个类(派生类)可以获取另一个类(基类)的属性和方法。实现了代码复用和 “is-a”(是一个)关系。 |
Polymorphism | 多态 | “一种接口,多种形态”。允许使用基类的指针或引用来调用派生类的同名函数,从而实现不同的行为。主要通过虚函数(Virtual Function)实现。 |
Virtual Function | 虚函数 | 在基类中使用 virtual 关键字声明的函数。它允许在派生类中被重写(Override),是实现运行时多态的关键。 |
Abstraction | 抽象 | 只向外界展示事物的必要属性和行为,隐藏其复杂的实现细节。类本身就是一种抽象。 |
3. 内存管理 (Memory Management)
英文术语 (English Term) | 中文翻译 (Chinese Translation) | 解释 (Explanation) |
---|---|---|
Stack | 栈 | 一块内存区域,用于存储局部变量、函数参数和返回地址。由编译器自动管理,后进先出(LIFO)。 |
Heap | 堆 | 一块内存区域,用于动态内存分配(使用 new )。程序员必须手动管理其生命周期(使用 delete ),否则会导致内存泄漏。 |
Pointer | 指针 | 一个存储内存地址的变量。 |
Reference | 引用 | 一个已存在对象的别名。它必须在声明时初始化,并且一旦绑定就不能再引用其他对象。 |
Dynamic Memory Allocation | 动态内存分配 | 在程序运行时根据需要从堆上请求内存。 |
Smart Pointer | 智能指针 | 行为像指针的类对象,但能自动管理所指向的内存。是现代C++中管理动态内存的首选方式,可以有效避免内存泄漏。主要有 std::unique_ptr , std::shared_ptr , std::weak_ptr 。 |
4. 模板与泛型编程 (Templates & Generic Programming)
英文术语 (English Term) | 中文翻译 (Chinese Translation) | 解释 (Explanation) |
---|---|---|
Template | 模板 | C++的一种特性,允许编写与类型无关的代码。分为函数模板和类模板。 |
Generic Programming | 泛型编程 | 一种编程范式,旨在编写不依赖于任何具体类型的、可重用的算法和数据结构。模板是C++实现泛型编程的主要工具。 |
Instantiation | 实例化 | 编译器根据模板和给定的具体类型(例如 int 或 std::string )生成实际的类或函数代码的过程。 |
Template Metaprogramming (TMP) | 模板元编程 | 一种利用C++模板在编译期进行计算的技术。代码的执行发生在编译阶段,而不是运行阶段。 |
5. 标准库 (The Standard Library)
英文术语 (English Term) | 中文翻译 (Chinese Translation) | 解释 (Explanation) |
---|---|---|
Standard Template Library (STL) | 标准模板库 | C++标准库的核心部分,包含一系列通用的容器、迭代器、算法和函数对象。 |
Container | 容器 | 用于存储数据的对象。例如 std::vector (动态数组), std::list (双向链表), std::map (键值对集合), std::set (唯一元素集合)。 |
Iterator | 迭代器 | 一种行为类似指针的对象,用于遍历容器中的元素。是连接容器和算法的桥梁。 |
Algorithm | 算法 | 一系列用于处理数据序列的函数模板。例如 std::sort (排序), std::find (查找), std::copy (复制)。 |
6. 现代 C++ 特性与范式 (Modern C++ Features & Paradigms)
英文术语 (English Term) | 中文翻译 (Chinese Translation) | 解释 (Explanation) |
---|---|---|
RAII (Resource Acquisition Is Initialization) | 资源获取即初始化 | C++最核心的编程范式之一。通过将资源的生命周期与对象的生命周期绑定,利用栈对象的自动销毁(调用析构函数)来确保资源(如内存、文件句柄、锁)被正确释放。 |
Move Semantics | 移动语义 | C++11引入的特性,允许将资源从一个对象“移动”到另一个对象,而不是进行昂贵的拷贝。通过右值引用 && 实现。 |
Lambda Expression | Lambda 表达式 | 一种在代码中就地定义匿名函数对象的便捷方式。 |
Concurrency | 并发 | 指程序的不同部分可以乱序或并行执行。C++11开始在标准库中提供了 std::thread , std::mutex , std::atomic 等工具来支持并发编程。 |
SFINAE (Substitution Failure Is Not An Error) | 替换失败并非错误 | C++模板元编程中的一个重要原则。指在模板实例化过程中,如果某个重载的模板参数替换失败,编译器不会报错,而是简单地忽略这个重载,继续寻找其他匹配的模板。 |
7. 编译与链接 (Compilation & Linking)
英文术语 (English Term) | 中文翻译 (Chinese Translation) | 解释 (Explanation) |
---|---|---|
Preprocessor | 预处理器 | 在正式编译前处理源代码的程序。主要处理以 # 开头的指令,如 #include , #define , #if 等。 |
Compiler | 编译器 | 将预处理后的C++源代码翻译成特定机器的汇编代码或目标文件(Object File)。 |
Linker | 链接器 | 将一个或多个目标文件以及所需的库文件组合起来,生成最终的可执行文件。 |
Translation Unit | 翻译单元 | 一个 .cpp 源文件经过预处理器处理后得到的输出。是编译器进行编译的基本单位。 |
One Definition Rule (ODR) | 单一定义规则 | C++中的一条核心规则,要求在整个程序中,任何变量、函数、类类型等实体都只能有一个定义。 |
Last updated on